\chapter{实验及其结果}\label{chap:experiment}
本章首先对本文用于图分类的模型做了简单的介绍，接着分析引入GDV的有效性，通过三个经典图分类数据集来验证有效性，结合不同数据集的性质探讨GDV适用于什么样的数据集。

\section{实验设计}
首先介绍本文使用的embedding模型，如图\ref{fig:GNNEmbedding}

\begin{figure}[!htbp]
    \centering
    \includegraphics[width=1\textwidth]{Img/embeddingModel.eps}
    \caption{Embedding模型}
    \label{fig:GNNEmbedding}
\end{figure}

为了说明引入GDV之后，对于图神经网络图表征能力的影响，本文采取了如图\ref{fig:embeddingProcess}的流程来获得图的embedding。

\begin{figure}[!htbp]
    \flushright
    \subfigure[获得embedding的流程]{
        \label{fig:embeddingProcess}
        \begin{minipage}[b]{0.45\linewidth}
            \centering
            \includegraphics[width=1\textwidth]{Img/embeddingProcess.eps}
        \end{minipage}
    }
    \subfigure[本次实验采取的图分类模型]{
        \label{fig:GraphClassifierModel}
        \begin{minipage}[b]{0.45\linewidth}
            \centering
            \includegraphics[width=0.6\textwidth]{Img/GraphClassifierModel.eps}
        \end{minipage}
    }
    \caption{模型设计}
\end{figure}

对于上面的流程有这么几点需要说明:

\begin{itemize}
    \item 由于Graphlets随着节点个数的增长而指数级增加，带来计算量的指数级增加，故而本文只采用4节点的GDV
    \item GNN embedding 模型采用的是第三章提到的两种GNN，即GAT,GCN的图表征模型，也就是利用GAT，GCN做卷积层，通过池化机制来得到图的全局表征
\end{itemize}


    \section{有效性分析}
    由于引入GDV之后，模型的假设空间实际上是被扩大了的，如何说明在假设空间扩大之后，我们得到的结果真的是因为GDV这个属性能够有效的提升模型的性能，还是因为假设空间扩大从而模型更容易拟合数据呢？本文设计了下面的对照实验:

    \begin{figure}[!htbp]
        \centering
        \includegraphics[width=0.48\textwidth]{Img/testGDV.eps}
        \caption{将GDV同shuffle之后的GDV作比较}
        \label{fig:testGDV}
    \end{figure}

    首先，说明什么是shuffle之后的GDV,如图\ref{fig:GDVwithShuffle},对图$\mathcal{G}$中的每一个节点，我们都对其GDV做一个随机的置换。
    
    这里要特别说明的是每个节点采取的置换一般是不同的，从而我们就将表征图$\mathcal{G}$的结构的GDV，通过shuffle操作，让每个节点的新的节点属性表示的是另一个随机的图的结构特征，由于新的节点属性是从旧的节点属性直接shuffle得到的，故而他们具有相同的假设空间，也就是说，\textbf{如果引入GDV确实有效果，那么我们预期引入GDV的实验结果要明显好于引入shuffle之后的GDV的实验结果.}
   
    \begin{figure}[!htbp]
        \centering
        \includegraphics[width=0.6\textwidth]{Img/GDVwithShuffle.eps}
        \caption{通过Shuffle得到其他图的GDV特征}
        \label{fig:GDVwithShuffle}
    \end{figure}

    \section{算法验证}



    下面本文分析不同数据集下的模型得到的结果，并对其进行分析。
    \subsection{DD数据集}
    DD\citep{DD}是一个包含了1178个蛋白质结构的数据集。 

    每个蛋白质都可以用一个图来表示，图上的每一个节点都表示一个氨基酸，如果两个氨基酸之间的距离小于6埃($10^{-10}\text{m}$)则在这两个节点之间有一条边。

    针对该数据集的任务是: \textbf{图分类——判断该蛋白质是否是酶: 1 or -1} 

    \subsubsection*{验证GDV是否有效}

    按照上文提到的模型，我们将GDV分别引入基于GAT的模型和基于GCN的模型，每次使用不同的随机seed，重复实验16次得到下面的结果:

    \begin{figure}[!htbp]
        \centering
        \subfigure[GAT模型，随着训练过程，测试集上的平均表现曲线]{
            \label{fig:GAT-basedCmpAtDD}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GAT-based_compare_GDV_or_not_at_DD.pdf}
            \end{minipage}
        }
        \subfigure[GAT模型，最好测试集表现的重复试验箱形图]{
            \label{fig:GAT-basedCmpBoxPlotAtDD}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GAT-based_compare_GDV_or_not_BoxPlot_at_DD.pdf}
            \end{minipage}
        }
        \subfigure[GCN模型，随着训练过程，测试集上的平均表现曲线]{
            \label{fig:GCN-basedCmpAtDD}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GCN-based_compare_GDV_or_not_at_DD.pdf}
            \end{minipage}
        }
        \subfigure[GCN模型，最好测试集表现的重复试验箱形图]{
            \label{fig:GCN-basedCmpBoxPlotAtDD}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GCN-based_compare_GDV_or_not_BoxPlot_at_DD.pdf}
            \end{minipage}
        }
        \caption{验证GDV是否有效的对照实验}
    \end{figure}

    从图\ref{fig:GCN-basedCmpAtDD}中可以看出基于GCN的图神经网络模型在使用了GDV作为初始节点属性的情况下得到了在测试集上更好的表现，而使用了shuffle之后的GDV作为初始节点属性的模型表现与不使用GDV，只是随机为每一个节点初始化一个节点属性得到的表现相仿，从而我们可以看出引入GDV确实可以在DD这个数据集上得到更好的效果。
    
    而基于GAT的图神经网络模型在DD这个数据集上对GDV作为初试节点属性并没有明显的效果。具体的原因有待进一步实验分析。
    
        \begin{table}[!htbp]
            \caption{验证GDV是否有效的对照实验，模型稳定后的平均精度比较}
            \label{tab:GDVCMPatDD}
            \centering
            \footnotesize% fontsize
            \setlength{\tabcolsep}{4pt}% column separation
            \renewcommand{\arraystretch}{1.2}%row space 
            \begin{tabular}{lccc}
            \toprule
                & Naive&with GDV& with shuffled GDV \\
            \midrule
            GAT-Based &72.50\%&\textbf{71.68\%}&71.57\%\\
            GCN-Based &72.00\%&\textbf{75.13\%}&72.48\%\\
            \bottomrule
            \end{tabular}
        \end{table}

    \subsection{MUTAG数据集}
    MUATG\citep{MUTAG}是一个包含了188个具有7种离散节点标签的硝基芳香族化合物化合物样品。 

    每一个化合物用一个图来表示，图上的每一个节点表示原子，并由原子类型标记的编码表示如表\ref{tab:mutagNodeLabels}，而顶点之间的边代表相应原子之间的化学键如表\ref{tab:mutagEdgeLabels}。

    \begin{table}[!htbp]
        \caption{MUTAG数据集的Node labels}
        \label{tab:mutagNodeLabels}
        \centering
        \footnotesize% fontsize
        \setlength{\tabcolsep}{4pt}% column separation
        \renewcommand{\arraystretch}{1.2}%row space 
        \begin{tabular}{lccccccc}
        \toprule
                    & 0&1&2&3&4&5&6 \\
        \midrule
        Atom &C&N&O&F&I&CI&Br\\
        \bottomrule
        \end{tabular}
    \end{table}

        \begin{table}[!htbp]
            \caption{MUTAG数据集的Node labels}
            \label{tab:mutagEdgeLabels}
            \centering
            \footnotesize% fontsize
            \setlength{\tabcolsep}{4pt}% column separation
            \renewcommand{\arraystretch}{1.2}%row space 
            \begin{tabular}{lcccc}
            \toprule
                        & 0&1&2&3 \\
            \midrule
            Edge &aromatic&single&double&triple\\
            \bottomrule
            \end{tabular}
        \end{table}

    针对该数据集的任务是: \textbf{图分类——判断该化合物对鼠伤寒沙门氏菌的致突变性: 1 or -1} 

    \subsubsection*{验证GDV是否有效}

    按照上文提到的模型，我们将GDV分别引入基于GAT的模型和基于GCN的模型，每次使用不同的随机seed，重复实验16次得到下面的结果:

    \begin{figure}[!htbp]
        \centering
        \subfigure[GAT模型，随着训练过程，测试集上的平均表现曲线]{
            \label{fig:GAT-basedCmpAtMUTAG}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GAT-based_compare_GDV_or_not_at_MUTAG.pdf}
            \end{minipage}
        }
        \subfigure[GAT模型，最好测试集表现的重复试验箱形图]{
            \label{fig:GAT-basedCmpBoxPlotAtMUTAG}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GAT-based_compare_GDV_or_not_BoxPlot_at_MUTAG.pdf}
            \end{minipage}
        }
        \subfigure[GCN模型，随着训练过程，测试集上的平均表现曲线]{
            \label{fig:GCN-basedCmpAtMUTAG}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GCN-based_compare_GDV_or_not_at_MUTAG.pdf}
            \end{minipage}
        }
        \subfigure[GCN模型，最好测试集表现的重复试验箱形图]{
            \label{fig:GCN-basedCmpBoxPlotAtMUTAG}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GCN-based_compare_GDV_or_not_BoxPlot_at_MUTAG.pdf}
            \end{minipage}
        }
        \caption{验证GDV是否有效的对照实验}
    \end{figure}

    如图\ref{fig:GAT-basedCmpAtMUTAG},我们看出在MUTAG数据集上，基于GAT的图神经网络模型使用GDV作为初始化节点属性可以得到十分显著的结果。这有可能是因为化合物中含有的原子类别较多，从而局部结构显著，对图分类有很好的效果。图\ref{fig:GCN-basedCmpAtMUTAG}显示：基于GCN的图神经网络模型使用GDV作为初始化节点属性带来的提升并不明显，其中的原因还有待进一步分析。

    \begin{table}[!htbp]
        \caption{验证GDV是否有效的对照实验，模型稳定后的平均精度比较}
        \label{tab:GDVCMPatMUTAG}
        \centering
        \footnotesize% fontsize
        \setlength{\tabcolsep}{4pt}% column separation
        \renewcommand{\arraystretch}{1.2}%row space 
        \begin{tabular}{lccc}
        \toprule
            & Naive&with GDV& with shuffled GDV \\
        \midrule
        GAT-Based &75.84\%&\textbf{88.43\%}&77.83\%\\
        GCN-Based &83.46\%&\textbf{84.35\%}&79.84\%\\
        \bottomrule
        \end{tabular}
    \end{table}

    \subsection{NCI1数据集}
    NCI1\citep{NCI1}是一个包含了4110个化合物的数据集。

    每个化合物用一个图来表示，每个节点表示化合物分子的原子，顶点之间的边表示原子之间的化学键。

    针对该数据集的任务是: \textbf{图分类——判断该化合物对肺癌细胞呈阳性或阴性: 1 or -1}

    \subsubsection*{验证GDV是否有效}

    按照上文提到的模型，我们将GDV分别引入基于GAT的模型和基于GCN的模型，每次使用不同的随机seed，重复实验16次得到下面的结果:
    \begin{figure}[!htbp]
        \centering
        \subfigure[GAT模型，随着训练过程，测试集上的平均表现曲线]{
            \label{fig:GAT-basedCmpAtNCI1}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GAT-based_compare_GDV_or_not_at_NCI1.pdf}
            \end{minipage}
        }
        \subfigure[GAT模型，最好测试集表现的重复试验箱形图]{
            \label{fig:GAT-basedCmpBoxPlotAtNCI1}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GAT-based_compare_GDV_or_not_BoxPlot_at_NCI1.pdf}
            \end{minipage}
        }
        \subfigure[GCN模型，随着训练过程，测试集上的平均表现曲线]{
            \label{fig:GCN-basedCmpAtNCI1}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GCN-based_compare_GDV_or_not_at_NCI1.pdf}
            \end{minipage}
        }
        \subfigure[GCN模型，最好测试集表现的重复试验箱形图]{
            \label{fig:GCN-basedCmpBoxPlotAtNCI1}
            \begin{minipage}[b]{0.454\linewidth}
                \centering
                \includegraphics[width=1\textwidth]{Img/GCN-based_compare_GDV_or_not_BoxPlot_at_NCI1.pdf}
            \end{minipage}
        }
        \caption{验证GDV是否有效的对照实验}
    \end{figure}

    图\ref{fig:GAT-basedCmpAtNCI1}和图\ref{fig:GAT-basedCmpAtNCI1}都显示出使用GDV作为初始化节点属性在NCI1数据集上不论是基于GAT还是基于GCN的图神经网络模型都可以得到显著的提升。

    \begin{table}[!htbp]
        \caption{验证GDV是否有效的对照实验，模型稳定后的平均精度比较}
        \label{tab:GDVCMPatNCI1}
        \centering
        \footnotesize% fontsize
        \setlength{\tabcolsep}{4pt}% column separation
        \renewcommand{\arraystretch}{1.2}%row space 
        \begin{tabular}{lccc}
        \toprule
            & Naive&with GDV& with shuffled GDV \\
        \midrule
        GAT-Based &75.86\%&\textbf{78.13\%}&75.26\%\\
        GCN-Based &78.21\%&\textbf{79.94\%}&78.11\%\\
        \bottomrule
        \end{tabular}
    \end{table}
    
    \subsection{实验结果分析}
    
    从上面的实验可以看出，GDV当作初始化的节点属性一般可以带来更好的表现，同时如果与shuffle后的GDV初始化做比较而言，GDV作为初始化节点属性常常效果更优，这说明复杂网络中的局部结构确实对图分类任务具有帮助。
    
    从上述各种数据集的情况来看，节点容易具有某种局部结构特征的数据集：MUTAG,NCI1这类化合物相关的数据集在使用GDV作为节点初始属性后，不论是基于GAT的还是基于GCN的图神经网络模型都能够得到更好的分类准确率。而DD这种蛋白质大分子的数据集，个中节点（氨基酸）的局部结构特征相较于化合物中作为节点（原子）的局部结构特征的显著性较差，因为每个原子的外层电子很严格的限定了其作为化合物能有的结构。
    
    \section{本章小结}

    本章说明了本文的实验是如何设计的，并且说明了采取了随机初始化节点属性(不使用GDV)、采取GDV作为初始节点属性、采取shuffled GDV作为初始节点属性这三种不同的对照组做实验，为了获得具有统计意义的结果，采取了多次重复实验，每次实验采取不同的随机seed。

    \begin{table}[!htbp]
        \caption{验证GDV是否有效的对照实验，模型稳定后的平均精度比较}
        \label{tab:GDVCMPSummary}
        \centering
        \footnotesize% fontsize
        \setlength{\tabcolsep}{4pt}% column separation
        \renewcommand{\arraystretch}{1.2}%row space 
        \begin{tabular}{lccc}
        \toprule
            & Naive&with GDV& with shuffled GDV \\
        \midrule
        DD GAT-Based &72.50\%&\textbf{71.68\%}&71.57\%\\
        DD GCN-Based &72.00\%&\textbf{75.13\%}&72.48\%\\
        \midrule
        MUTAG GAT-Based &75.84\%&\textbf{88.43\%}&77.83\%\\
        MUTAG GCN-Based &83.46\%&\textbf{84.35\%}&79.84\%\\
        \midrule
        NCI1 GAT-Based &75.86\%&\textbf{78.13\%}&75.26\%\\
        NCI1 GCN-Based &78.21\%&\textbf{79.94\%}&78.11\%\\
        \bottomrule
        \end{tabular}
    \end{table}

    最后的实验\ref{tab:GDVCMPSummary}表明：

    \begin{itemize}
        \item 在DD数据集上使用基于GCN模型的话，采用GDV相较于不使用GDV的模型平均测试集上精度要高3.13\%；
        \item 在MUTAG数据集上使用基于GAT模型的话，采用GDV相较于不使用GDV的模型平均测试集上精度要高12.59\%；使用基于GCN模型的话要高出0.89\%；
        \item 在NCI1数据集上使用基于GAT模型的话，采用GDV相较于不使用GDV的模型平均测试集上精度要高2.27\%；使用基于GCN模型的话要高出1.73\%；
    \end{itemize}

    并且所有使用shuffled GDV作为节点初始化属性的模型得到的结果平均而言都不如使用GDV的模型，这说明本文提出的引入GDV的方法是有效的。